1. Field of the Invention
The present invention relates to high-availability data storage systems and, more particularly, to a method and apparatus for logging write requests to a storage volume in a network data switch.
2. Description of the Background Art
Modern computer networks generally comprise a plurality of user computers connected to one another and to a computer server via a communication network. To provide redundancy and high-availability of the information in applications that are executed upon the computer server, multiple computer servers maybe arranged in a cluster, i.e., forming a server cluster. Such server clusters are available under the trademark VERITAS CLUSTER SERVER from Veritas Software Corporation at Mountain View, Calif. In a center of a cluster, a plurality of servers communicate with one another to facilitate failover redundancy such that when software or hardware, i.e., computer resources, become inoperative on one server, another server can quickly execute the same software that was running on the inoperative server substantially without interruption. As such, user services that are supported by a server cluster would not be substantially impacted by inoperative server or software.
Within a server cluster, the servers are generally connected to at least one switch that controls routing of data to/from one or more storage volumes. Each switch contains a plurality of switch components that facilitate routing data and read/write requests to and from the storage volume or volumes. The switch component comprises a computer processor that executes storage volume manager software containing a virtualization engine. These “intelligent” switch components are henceforth also referred to as DPCs (Data Path Controller). One example at storage volume manager software is the VERITAS VOLUME MANAGER (VxVM) available from Veritas Software Corporation of Mountain View, Calif. The virtualization engine provides virtual logic units (VLUNs) that are mapped to the various physical logical units of the storage volumes. Such virtualization enables the server to address the storage volume through the use of VLUNs.
Within a switch, it is desirable to log write requests for the storage volumes. Notably, an intention to write data to a storage volume may be logged upon receiving a write request from each server coupled to the switch. This allows for fast recovery of a storage volume in the event a server or the switch crashes and a particular data write was not completed. The logged write request can be used in conjunction with a mirrored, multi-pathed or otherwise redundant data storage volume to enable rapid data recovery. One solution involves maintaining an independent log in the switch for each DPC in the switch and using a mirrored storage volume for data redundancy. However, the number of DPCs in the switch may change dynamically. In addition, maintaining an independent log in the switch for each DPC wastes often scarce memory resources in the switch (and each DPC). Moreover following the latter method complicates the recovery process, as each independent log needs to be OR'ed before recovery can begin. A failure of a single log may also result in all other logs being rendered useless as a full recovery may be needed.
Accordingly, there exists a need in the art for a method and apparatus for logging write requests to a storage volume in a network data switch without maintaining an independent log for each DPC.